﻿Public Class Mapa

    Protected Const TAMAÑO_MAPA As Byte = 50
    Protected Const CANTIDAD_BASES As Byte = 2

    Public Property tamañoMapa As Byte = TAMAÑO_MAPA
    Private misPictures As New List(Of PictureBox)
    Private _diseñoMapa(TAMAÑO_MAPA, TAMAÑO_MAPA) As Byte
    Private _casillasMapa(TAMAÑO_MAPA, TAMAÑO_MAPA) As Casilla

    Public Property diseñoMapa As Byte(,)
        Get
            Return _diseñoMapa
        End Get
        Set(value As Byte(,))
            _diseñoMapa = value
        End Set
    End Property

    Public Property casillasMapa As Casilla(,)
        Get
            Return _casillasMapa
        End Get
        Set(value As Casilla(,))
            _casillasMapa = value
        End Set
    End Property

    Public Sub New()

        inicializarMapa()

        mapaAleatorio()

        crearMapa()
    End Sub

    Private Sub inicializarMapa()
        For i As Integer = 0 To TAMAÑO_MAPA - 1
            For j As Integer = 0 To TAMAÑO_MAPA - 1
                _diseñoMapa(i, j) = 0
            Next
        Next
    End Sub

    Private Sub mapaAleatorio()
        Dim rndX, rndY As New Random
        Dim X, Y As Integer
        For i As Integer = 0 To TAMAÑO_MAPA - 1
            Do
                X = rndX.Next(TAMAÑO_MAPA)
                Y = rndY.Next(TAMAÑO_MAPA)
            Loop While _diseñoMapa(X, Y) = 1

            _diseñoMapa(X, Y) = 1
        Next
    End Sub

    Private Sub crearMapa()

        For i As Integer = 0 To TAMAÑO_MAPA - 1
            For j As Integer = 0 To TAMAÑO_MAPA - 1

                Select Case _diseñoMapa(i, j)
                    Case 0
                        _casillasMapa(i, j) = New CasillaTierra
                    Case 1
                        _casillasMapa(i, j) = New CasillaAgua
                End Select
              
                _casillasMapa(i, j).Coordenadas = New Point(i, j)
                misPictures.Add(_casillasMapa(i, j).Pb)



            Next
        Next
    End Sub

    Private Sub mapaEspecifico()
        For i As Integer = (TAMAÑO_MAPA / 5) * 2 To ((TAMAÑO_MAPA / 5) * 3) - 1
            For j As Integer = (TAMAÑO_MAPA / 5) * 2 To ((TAMAÑO_MAPA / 5) * 3) - 1
                _diseñoMapa(i, j) = 1
            Next
        Next
    End Sub

End Class
